<?php include DIR_ROOT."dao/include_dao.php" ?>
<?php include DIR_ROOT."clases/db.class.php" ?>
<?php include DIR_ROOT."clases/modal_dialog.class.php" ?>
<?php include DIR_ROOT."libs/xajax/xajax_core/xajax.inc.php" ?>

<?php

$cuentas_nodo = BaseDeDatos::SELECT("a.id_cuenta AS id, a.nombre_cuenta AS nombre, a.codigo_cuenta as codigo FROM sic_cuentas AS a
									WHERE a.`id_cuenta` NOT IN 
									(SELECT c.id_cuenta FROM `sic_cuentas` AS c
									INNER JOIN sic_cuentas AS b ON b.`sic_cuentas_id_cuenta` = c.`id_cuenta`)
									ORDER BY a.`id_cuenta`;");

//Control para almacenar la transacción
if (isset($_POST["accion_transaccion"]) == INSERTAR) {
		
	$transaccion = new SicTransaccion();	
	$transaccion->fechaTransaccion = date_format(new DateTime($_POST["fecha"]), "Y-m-d");
	$transaccion->importeTransaccion = $_POST["importe"];
	$transaccion->conceptoTransaccion = $_POST["concepto"];
	$transaccion->ajusteTransaccion = 0;
	
	try 
	{
			$idTransaccion = DAOFactory::getSicTransaccionDAO()->insert($transaccion);
			foreach ($_POST["array_cuentas"] as $cuenta) {
				$partida = new SicPartida();
				$partida->sicTransaccionIdTransaccion = $idTransaccion;
				$partida->cargaPartida = doubleval($cuenta["saldo_deudor"]);
				$partida->abonoPartida = doubleval($cuenta["saldo_acreedor"]);
				$partida->sicCuentasIdCuenta = intval($cuenta["id_cuenta"]);
				$partida->iva = intval($cuenta["iva"]);
				
				DAOFactory::getSicPartidasDAO()->insert($partida);
			}
	}
	catch(Exception $e)
	{
		//Mostrar Error
	}
	
}


//Crean el Objeto xajax que permite crear y llevar el control de los elementos
$xajax = new xajax();
$xajax->configure('javascript URI','../libs/xajax');
$xajax->register(XAJAX_FUNCTION, "mostrar_tabla");
$xajax->register(XAJAX_FUNCTION, "validar_transaccion");

$xajax->processRequest();


function mostrar_tabla($id,$cargo,$abono)
{
	$respuesta = new xajaxResponse();
	
	$objetoCuenta = DAOFactory::getSicCuentasDAO()->load($id);
	$objetoCuenta->saldoDeudor = doubleval($cargo);
	$objetoCuenta->saldoAcreedor = doubleval($abono);
	
	$respuesta->createInput("form-transaccion", "hidden", "array_cuentas[".$id."][id_cuenta]", "id_cuenta".$objetoCuenta->idCuenta);
	$respuesta->createInput("form-transaccion", "hidden", "array_cuentas[".$id."][saldo_deudor]", "saldo_deudor".$objetoCuenta->idCuenta);
	$respuesta->createInput("form-transaccion", "hidden", "array_cuentas[".$id."][saldo_acreedor]", "saldo_acreedor".$objetoCuenta->idCuenta);
	$respuesta->createInput("form-transaccion", "hidden", "array_cuentas[".$id."][iva]", "iva".$objetoCuenta->idCuenta);
	$respuesta->assign("id_cuenta".$objetoCuenta->idCuenta, "value", $objetoCuenta->idCuenta);
	$respuesta->assign("saldo_deudor".$objetoCuenta->idCuenta, "value", $objetoCuenta->saldoDeudor != 0 ? $objetoCuenta->saldoDeudor : "0");
	$respuesta->assign("saldo_acreedor".$objetoCuenta->idCuenta, "value", $objetoCuenta->saldoAcreedor != 0 ? $objetoCuenta->saldoAcreedor : "0");
	$respuesta->assign("iva".$objetoCuenta->idCuenta, "value", 1);
	 
	$salida = "
 				<tr>
	                <td>".$objetoCuenta->codigoCuenta."</td>
	                <td>".$objetoCuenta->nombreCuenta."</td>
	                <td>$".number_format($objetoCuenta->saldoDeudor, 2)."</td>
	                <td>$".number_format($objetoCuenta->saldoAcreedor, 2)."</td>
	                <td>
	                      	<input type='checkbox' class='flat-red' checked/>  
	                </td>
	                <td>
	                  <button class='btn btn-success btn-sm'>
	                   <i class='fa fa-edit'></i>
	                  </button>
	                </td>
	                <td>
	                 <button class='btn btn-danger btn-sm'>
	                   <i class='fa fa-eraser'></i>
	                 </button>
	                </td>
                </tr>";

	$respuesta->append("columnas", "innerHTML", $salida);
	
	//Resetear campos al agregar
	$respuesta->assign("nombre_cuenta", "value", "");
	$respuesta->assign("cargo", "value", "");
	$respuesta->assign("abono", "value", "");

	return $respuesta;	
}

function validar_transaccion($form)
{
	
	return false;
}

?>